1. Field of the Invention
The present invention relates generally to the field of integrated circuit digital electronic systems, called “systems on a chip” or SoC.
More specifically, the invention relates to the arbitration mechanisms for managing conflicting access requests initiated by different functional modules in such a system.
2. Description of the Related Art
In a digital electronic system, resources are conventionally shared between functional modules that have access to them. Such a functional module is sometimes called a virtual component or an “intellectual property” block, or even IP block in professional jargon. It is designed to handle a defined function, or is for general-purpose use (it may be a microprocessor or a microcontroller). It can be implemented in the form of hardware and/or software elements.
A distinction is drawn between master type modules (hereinafter called initiator modules), which take the initiative to exchange data with one or more other modules, and slave type modules (hereinafter called target modules), the role of which is to respond to the requests received from the initiator module which has control. If there is a plurality of initiator modules, an arbitration unit (or arbiter) is required to arbitrate between conflicting requests to access a common resource originating from different initiator modules, to grant an exclusive right of access to the resource to a specific one of said initiator modules.
In the current state of the art, there are various arbitration mechanisms that can be implemented in an arbitration unit. For example, a Round Robin algorithm enables the right of access to be granted sequentially to the requesting initiator modules, each in turn. As a variant, a Least Recently Used (LRU) algorithm grants the right of access to the initiator module that requests it and which had access least recently. Other algorithms are based on fixed priority rights, respectively linked to the initiator modules.
In some architectures it is desirable to provide for exceptions to the application of a standard arbitration mechanism in the event of conflicting requests, in order to reserve a privileged right of access dynamically to a defined one of the initiator modules. It may also be desirable to be able dynamically to reserve a privileged right of access to a defined one of a restricted group of initiator modules in the event of conflicting requests to access a particular resource, according to a specific arbitration mechanism applying as a priority to the initiator modules of this group. The phrase “as a priority” should be understood to mean that the specific arbitration mechanism is applied, instead of the standard arbitration mechanism, only to the initiator modules of said group.
Obviously, consideration may be given to using a configurable priority algorithm. Such an algorithm, implemented in software, is, however, very complex and therefore too slow to execute for certain applications.